ICTSC2019 二次予選 問題解説: ルーティング

問1 経路問題 その1

問題文

下記の図で、vmx2からvmx1のge-0/0/2へpingが飛ばない。 logを見て、考えられる原因について最もふさわしいものを選べ。なお、aclなどfilteringの設定はなく、vmx2の設定は適切であるとする。また、本問においてvmx2のgwはxrv1であるとする。

file
file
  • A: xrv1の物理インタフェースがdownしている
  • B: vmx1からの戻りの経路がない
  • C: vmx1とxrv1の間のvlan設定が間違っている
  • D: ospfのAD値設定が間違っている

解説

Bが正解。vmx1からの戻りの経路がないため。
pingの送信元インタフェースであるvmx2の192.168.1.4/24について、vmx1のshow routeには情報がないことが読める。
pingが通るためには、end-end間に存在する各機器において、往路、復路とも経路を保持している必要がある。往路の経路があるからpingが通るはず、と勘違いしてトラブルシューティングを長引かせてしまった経験をしたことがある人は、すぐに気づく問題である。

  • A:誤り。show ip routeでconnectedもospf経路交換も見えるため、IFは生きていると考えられる。
  • C:誤り。vmx1が10.0.1.20/30の経路をOSPFで受け取っていること等から、疎通性は正常であると判断できる。
  • D:誤り。AD値の設定は正常に見える。

問2 経路問題 その2

下記の図で、vmx2からvmx1のge-0/0/2へpingが飛ばない。logを見て、考えられる原因について最もふさわしいものを選べ。なお、aclなどfilteringの設定はなく、vmx2の設定は適切であるとする。また、本問においてvmx2のgwはxrv1であるとする。

file
  • A: xrv1のstatic routeの設定が原因となっている
  • B: vmx1のルーティングにかかわるプロセスがdownしている
  • C: vmx1において、xrv1とは反対側の上流に経路が向いていることが予想される
  • D: vmx1とxrv1の間のvlan設定が間違っている

解説

Aが正解。xrv1に/32のstatic routeが記載されており、10.0.1.5への経路がxrv2の方に向いているため。
10.0.1.4/30のエントリが見えるが、そのすぐ下に/32があり、ロンゲストマッチの原則から10.0.1.5/32への通信はxrv2の方へ向く。
本問は簡単な例だが、このようにいつの間にか経路が意図しない方に向いていることや、それを原因とする故障はたまに発生する。

  • B:誤り。show ip routeの結果を見る限り、考えにくい。
  • C:誤り。そうなっているかもしれないが、そもそもvmx1まで通信が明らかに到達しない。
  • D:誤り。10.0.1.4/30がdirectly connectedである点、10.0.0.1/32などをOSPFで受けとっている点から、疎通性は正常であると判断できる。

問3 経路情報の伝搬

IPルーティングに関する説明で正しいものを選べ。

  • A: 経路集約を行うことでルータ間での経路交換のメッセージ量やメモリの消費量を低減させることができる。
  • B: BGPは多量の経路を扱うプロトコルであるため、経路情報を可逆圧縮したNLRIと呼ばれるメッセージを用いて経路交換を行う。これは経路集約と呼ばれ、異なるメーカ間での相互接続性を確保するためにLZMAアルゴリズムが用いられている。
  • C: RIPやOSPFでは類似したアドレスの情報を多量に交換するため、各ルータの交換する経路情報はZIP形式で圧縮されている。
  • D: eBGPの設定されているルータはフルルートを保持しており、インターネット上の全ネットワークに接続性を持つこのため、eBGPルータは他のBGPルータに対して0.0.0.0/0の経路のみを配信する。

解説

Aが正しい回答です。経路集約を行うことで交換する経路数が減少するため、メッセージの量や、ルータの保持する経路を減らすことができます。
B,Cは誤りです。OSPFやBGPでは可逆圧縮を用いた経路の交換は行われません。
Dは誤りです。フルルートやそれに相当する経路を持つルータで0.0.0.0/0を生成して他のルータに広告することはよくありますが、iBGPルータあるいはRRルータとの間ではBGPで学習したすべての経路を交換します。

問4 ドキュメント記載に最適なアドレスは?

あなたは研究室のネットワークを管理している。あなたは後輩のために”他の1台のホストへの多量のIPv4 pingの送り方”という例を研究室の運用ドキュメントに記載することにした。このような場合に以下の中で【最も適した】アドレスはどれか?

ping -f <ipv4アドレスの宛先>

条件:後輩たちははNWに馴染みがないため、コマンド例をそのままコピーアンドペーストしてしまうことがある。この際に実際に存在するホストに対してパケットが送信されてしまい迷惑がかかることがないようにしたい。

  • A: 192.0.2.100
  • B: 0.0.0.0
  • C: 255.255.255.255
  • D 172.32.0.1
  • E 10.255.255.255
  • F 192.0.3.100
  • G 127.0.0.1

解説

正解A: ドキュメント向けアドレスであり適切です。[RFC5737] IPv4 Address Blocks Reserved for Documentationに記載があります。この中では、以下のようなアドレスがドキュメント向けに予約されています。

192.0.2.0/24 (TEST-NET-1)
198.51.100.0/24 (TEST-NET-2)
203.0.113.0/24 (TEST-NET-3)

他の選択肢は以下の通り誤りとなります。
B, C, Eはホストを指定するには不適切なアドレスです。D,FはGlobalアドレスであり、例示としては考えられますが、今回の条件と照らし合わせると不適切です。GはloopbackのIPアドレス空間なので他のホストではありません。RFC5735: Special Use IPv4 Addressesに記載があります。

問5 NAT

IPv4環境におけるNATの説明のうち正しいものを選べ

  • A: NAPTを利用することで1つのグローバルアドレスしか所持しない環境でも複数のノードがインターネット上のノードと同時に通信できる。しかし、DNSはプロトコル上、送り元、送信先のポートが53でなければならないため、同時にDNSサーバと通信できるノードは1台のみである。
  • B: NATによりHTTPSを用いてインターネット上のWebサーバと通信をすることが可能である。しかし、クライアント(送信元)のIPアドレスが変換されていると、クライアントはサーバ証明書の確認を行うことはできない。
  • C: NATはプライベートIPアドレスをグローバルIPアドレスに変換する技術であるため、宛先をプライベートIPアドレスに変換することはできない。
  • D: NATはプライベートIPアドレスをグローバルIPアドレスに変換する技術であるため、グローバルIPアドレスをグローバルIPアドレスに変換することはできない。
  • E: 他の選択肢はすべて誤り。

解説

この問題は出題が不適切であるため、C, D, Eを正答としています。
当初はEのみが正当である(C,Dが不適切である)としていました。これは、Linuxおよびいくつかの主要なルータのNAT機能においてプライベートアドレスアドレス空間であるかの判定は行われておらず、グローバルアドレス同士あるいはプライベートアドレス同士のNATが記載できるためです。しかし、NATに関するStandards TrackやInformationalの主要なRFCでは、Privateアドレス空間とExternalアドレス空間(グローバルアドレス空間)を前提として論じられているため、C, D も正答としました。

Aの前半は正しいが後半は誤りです。DNSの通信において、Query送出側のポートが53である制限はありません。B前半は正しいですが後半は誤りです。NAT処理を行ってもHTTPSのサーバの証明に影響はありません。

問6 IPv6

IPv6に関する説明のうち正しいものを選べ。

  • A IPv6ではMACアドレスからユニークに生成されるEUI-64アドレスをホスト部に含むアドレスが広く使われる。このため、IPv6を用いた通信ではMACアドレスを含まないEthernetヘッダが用いられている。
  • B IPv6ではIPv4の上に成り立つネットワークであるため、ホストや途中のルータではIPv4が有効になっていなければならない。
  • C 同一のネットワークに所属するIPv6ホストは送り元と宛て先でペイロードの交換を行う前にNLRIメッセージを交換し、到達性の確認してからペイロードの転送を行う。
  • D IPv4ではEthernet上のL2アドレスの解決にはARPプロトコルが用いられる。IPv6ではARPは用いられず、OSPFv3を用いてL2アドレスを相互に交換しMACアドレスを解決してフレームの転送が行われる。
  • E: 他の選択肢はすべて誤り。

解説

Eが正解です。

他の選択肢が不適切な理由は以下の通りです。
AはIPv6の通信においてもEthernetの通信にMACアドレスが不要になるわけではありません。前半部分については正しいですが、EthernetフレームにはMACアドレスが従来通り必要です。
Bについて、 IPv6はIPv4上のネットワークに構築されるわけではありません。IPv4で接続されたネットワークは不要です。
Cについて、同一ネットワークの通信に選択肢の動作は不要です。NLRIはBGPにおいて用いられる経路情報です。
Dは誤りです。IPv6においてEthernetアドレスの解決にはNeighbor Discoveryの仕組みが用いられます。

問7 OSPF その1

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。

以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R1#ping 192.168.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
(略)
  • 1: 成功する。
  • 2: 失敗する。R1とR2のMTUサイズが異なるのでPath MTU Discoveryが失敗しIPパケットが破棄される。
  • 3: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できないため
  • 4: 失敗する。R1のOSPFはconnected経路をredistributeしていないため、R2はR1に付与されているアドレスに到達できない。

解説

続く4問は同じ構成となるため、状態を説明します。

  • このネットワークはR1, R2間のOSPFがMTU mismatchでOSPFのneighbor関係を確立されていない以外は正常な設定です。
  • OSPFのnetworkコマンドのワイルドカードマスクが/32で書かれているものと/24で書かれているものが存在しますが、今回の設問範囲では影響がありません。

回答に際してポイントとなるのは以下の点でした。

  • OSPFがR1-R2間でneighborを確立できていないこと
  • R1,R2間のI/FでOSPFが確立されていない場合でも、図の状態ではOSPF経路に載るため、R2からR3に対してこの経路は広告されること

以上を元に以下解説していきます。

1が正解。R1,R2間ではOSPFが確立されていないものの、Connectedな経路です。I/FのMTUサイズが意図的に変更されているが、例では明らかに小さいサイズのパケットです。
2,3,4はconnectedの通信には関係がありません。

問8 OSPF その2

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。
以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R1#ping 192.168.255.2 source 192.168.255.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.255.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.255.1
(略)
  • 1: 成功する。
  • 2: 失敗する。R1とR2のMTUサイズが異なるのでPath MTU Discoveryが失敗しIPパケットが破棄される。
  • 3: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できず、R1は対象アドレスの経路情報を持たない。
  • 4: 失敗する。R1のLoopback0のサブネットマスクは/32であるが、OSPF設定でnetworkコマンドのワイルドカードマスクが/24であるため、Loopback0のアドレスは広告されない。
  • 5: 失敗する。R1のOSPF設定でpassive-interface Loopback0が設定されているため、Loopback0を送り元アドレスとするIPパケットは送出できない。

解説

3が正解。OSPFのMTU mistmatchによりR1-R2間のOSPFの状態はEXSTARTのままで確立できていません。このため、R1はR2のLo0に関する経路を持たず、pingは失敗します。

他の選択肢は以下の点が誤り。
1は上記により誤りです。
2について、IPのPath MTU Discoveryと今回の結果には関係はありません。
4について、該当のnetworkコマンドはLoopback0を含む/24のアドレスを持つインタフェースでOSPFを有効にすることを示します。このため、マスク長が異なるためLoopback0のアドレスが配信されないわけではありません。
5についてpassive-interface Loopback0はOSPFに関する設定です。これをsourceとするIPパケットの送出を禁止するわけではありません。

問9 OSPF その3

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。

以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R3#ping 192.168.0.2 source 192.168.255.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.255.3
  • 1: 成功する。
  • 2: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できず、R2はR3に対してこのOSPF確立が失敗したconnected経路の情報を広告しない。
  • 3: 失敗する。R3のLoopback0のネットマスクは/32であるが、OSPF設定でnetworkコマンドのマスクアドレスが/24であるため、Loopback0のアドレスはR2に広告されず、R2は応答できない。
  • 4: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R2とR3の間のOSPF関係を確立できない。

解説

1の通り成功します。R2-R3間のOSPFは正常であり、関係する経路情報はR2,R3に伝搬されているためです。

2はR2においてあるインタフェースのOSPF確立がMTU mismatch起因で失敗しても、そのインタフェースがOSPFに参加していればそのインタフェースにかかわる情報はConnected経路としてR3に広告されます。
3について該当のnetworkコマンドはLoopback0を含む/24のアドレスを持つインタフェースでOSPFを有効にすることを示めします。このため、マスク長が異なるためLoopback0のアドレスが配信されないわけではありません。
4についてR2あるインタフェースのOSPF確立がMTU mismatch起因で失敗しても他のインタフェースでOSPFの確立ができないわけではありません。

問10 OSPF その4

※本問題中の「図:Routing-K1」は他の問題に含まれる「図:Routing-K1」と同様です。

以下のpingの結果として適切なものはどれか。理由が述べられているものについては最も適切な理由なものを選べ。

R3#ping 192.168.0.1 source 192.168.255.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.255.3
  • 1: 成功する。
  • 2: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R2はR3がOSPF経由で学習した経路宛のパケットを破棄する。
  • 3: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R1はR3のLoopback0の経路を持たない。
  • 4: 失敗する。R1とR2のMTUサイズが異なりOSPFのMTU mismatchによりOSPFのネイバー関係が確立できていないため、R3はR1向けの該当経路を持たない。

解説

3が正解です。R3からのパケットはR1に到達しますが、R1がR3の経路を持たないため、pingは失敗します。R2は192.168.0.0/24をOSPF経路として持ち、R3に広告できます。このため、R3は192.168.0.1宛のパケットをR2に送出できます。R2はR1にパケットをルーティングをしますが、到着したR1では192.168.255.3への経路を(R1はR2とOSPFが確立できていないため)知らないため、パケットを破棄します。

他の選択肢は以下の点が誤りです。
1は以上の通りpingできないため誤りとなります。
2についてはR2はネイバー確立が失敗したインタフェースへのパケット転送を破棄するわけではありません。
4についてはR2のconnected経路をR3は受け取っているため、R3からのパケットはR1に到達できます。このため、この理由は適切でありません。